﻿using System;
using System.Collections.Generic;
using System.Runtime.Serialization;

namespace JTLeigh.Commerce.Spencer.Features.ProductCatalog.Service.Contracts.GetAllCategoryPathsToProduct
{

	/// <summary>
	/// Data contract representing a single category path to a product.
	/// </summary>
	[DataContract]
	public class CategoryPath
	{

		#region Properties

		/// <summary>
		/// Gets or sets the ordered list of category identifiers of the categories on the path 
		/// from the root of the catalog to the product.
		/// </summary>
		/// <value>An <see cref="IList{TItem}"/> of category identifier <see cref="String"/>.</value>
		/// <remarks>
		/// <para>
		/// The category identifiers must be ordered from root to leaf.  For example, if the path
		/// to the product is <c>/Televisions/LCD/32InchAndLarger/</c>, the category identifiers 
		/// must be <c>{&quot;Televisions&quot;, &quot;LCD&quot;, &quot;32InchAndLarger&quot;}</c>.
		/// </para>
		/// </remarks>
		[DataMember(IsRequired = true)]
		public IList<String> Categories { get; set; }

		#endregion // Properties

	}

}
